# pragma once

# include "cpp_tools_Headers.h"

namespace cpp_tools
{
    Eigen::MatrixXd Euler_Rotation_Z(double theta)
    {
        Eigen::MatrixXd A(3,3);
        A << std::cos(theta), -std::sin(theta), 0,
            std::sin(theta), std::cos(theta), 0,
            0,0,1;
        return A;
    }

    Eigen::MatrixXd Euler_Rotation_Y(double theta)
    {
        Eigen::MatrixXd A(3,3);
        A << std::cos(theta), 0, std::sin(theta),
            0,1,0,
            -std::sin(theta), 0, std::cos(theta);
        return A;
    }

    Eigen::MatrixXd Euler_Rotation_X(double theta)
    {
        Eigen::MatrixXd A(3,3);
        A << 1, 0, 0,
            0, std::cos(theta), -std::sin(theta),
            0, std::sin(theta), std::cos(theta);
        return A;
    }
} // namespace cpp_tools
